CODE 53. Remove Duplicates from Sorted Array II

版权声明:本文为博主原创文章,转载请注明出处,谢谢!

版权声明:本文为博主原创文章,转载请注明出处:http://blog.jerkybible.com/2013/11/17/2013-11-17-CODE 53 Remove Duplicates from Sorted Array II/

访问原文「CODE 53. Remove Duplicates from Sorted Array II

Follow up for “Remove Duplicates”:
What if duplicates are allowed at most twice?
For example,
Given sorted array A = [1,1,1,2,2,3],
Your function should return length = 5,
and A is now [1,1,2,2,3].

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public int removeDuplicates(int[] A) {
// IMPORTANT: Please reset any member data you declared, as
// the same Solution instance will be reused for each test case.
if (A.length <= 0) {
return 0;
}
int length = A.length;
int cur = 0;
int nxt = 1;
boolean morethan2 = false;
for (; nxt < A.length; nxt++) {
if (A[nxt] != A[nxt - 1]) {
A[cur] = A[nxt - 1];
cur++;
morethan2 = false;
} else if (!morethan2) {
A[cur] = A[nxt - 1];
cur++;
morethan2 = true;
} else {
length--;
}
}
A[cur] = A[nxt - 1];
return length;
}
Jerky Lu wechat
欢迎加入微信公众号